# -*- coding: utf-8 -*-
import efinance as ef
import sys
import os

# --- 1. 从命令行获取参数 ---
if len(sys.argv) < 3:
    print("错误：参数不足。")
    print("用法: python3 01_fetch_data.py <股票代码> <frequency>")
    sys.exit(1)

stock_code = sys.argv[1]
frequency = sys.argv[2]

# --- 2. 根据 frequency 设置 klt 参数 ---
klt = 0
if frequency == 'daily':
    klt = 101  # 日K线
elif frequency == 'hourly':
    klt = 60   # 60分钟K线
else:
    print(f"错误：不支持的时间周期 '{frequency}'。请使用 'daily' 或 'hourly'。")
    sys.exit(1)

# --- 3. 获取股票数据 ---
print(f"开始获取股票代码 {stock_code} 的 {frequency} 历史数据...")
start_date = '19901219'
end_date = '20300101'

df = ef.stock.get_quote_history(stock_code, klt=klt, beg=start_date, end=end_date)

if df.empty:
    print(f"错误：未能获取到股票代码 {stock_code} 的数据。")
    sys.exit(1)

# --- 4. 保存数据 ---
# 确保output目录存在
os.makedirs('output/data', exist_ok=True)

output_filename = f'output/data/stock_data_{stock_code}_{frequency}_raw.csv'
df.to_csv(output_filename, index=False)

print(f"数据获取成功！已保存至文件: {output_filename}")